package com.yfp.client.domain.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.yfp.client.domain.ClientAddress;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

@Data
public class MallOrderListReqVO {
    /**
     * 主键ID
     */
    @Schema(description = "主键ID")
    private Long id;

    /**
     * 订单编号
     */
    @Schema(description = "订单编号")
    private String orderSn;

    /**
     * 订单金额
     */
    @Schema(description = "订单金额")
    private BigDecimal price;

    /**
     * 订单状态1待支付2待收货3已完成4已退款5已取消6退款中7待发货
     */
    @Schema(description = "订单状态1待支付2待收货3已完成4已退款5已取消6退款中7待发货")
    private Integer status;

    /**
     * 物流状态0：快递收件(揽件)1.在途中 2.正在派件 3.已签收 4.派送失败 5.疑难件 6.退件签收
     */
    @Schema(description = "物流状态0：快递收件(揽件)1.在途中 2.正在派件 3.已签收 4.派送失败 5.疑难件 6.退件签收")
    private Integer logisticsStatus;

    /**
     * 支付金额
     */
    @Schema(description = "支付金额")
    private BigDecimal payPrice;

    /**
     * 支付积分
     */
    @Schema(description = "支付积分")
    private Long integral;

    /**
     * 收货地址
     */
    @Schema(description = "收货地址")
    private String address;

    /**
     * 收货手机号码
     */
    @Schema(description = "收货手机号码")
    private String mobile;

    /**
     * 创建时间
     */
    @Schema(description = "创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;

    /**
     * 取消时间
     */
    @Schema(description = "取消时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date cancelTime;

    /**
     * 客户地址表id
     */
    private Long clientAddressId;

    /**
     * 客户地址表
     */
    private ClientAddress clientAddress;
    /**
     * 子订单
     */
    @Schema(description = "子订单")
    private List<MallOrderDetailVO> mallOrderDetailsList;
}
